package com.meituan.sdk.model.ddzhkh.generalreserve.generalreserveReserveMerchantcancel;

import com.meituan.sdk.annotations.ApiMeta;
import com.google.gson.reflect.TypeToken;
import javax.validation.constraints.NotBlank;
import java.lang.reflect.Type;
import com.meituan.sdk.internal.utils.JsonUtil;
import com.google.gson.annotations.SerializedName;
import javax.validation.constraints.NotNull;
import com.meituan.sdk.MeituanResponse;
import com.meituan.sdk.MeituanRequest;

/**
* 商家取消
* This file was automatically generated.
*/
@ApiMeta(
    path = "/ddzhkh/generalreserve/reserve/merchantcancel",
    businessId = 59,
    apiVersion = "10003",
    apiName = "generalreserve_reserve_merchantcancel",
    needAuth = true
)
public class GeneralreserveReserveMerchantcancelRequest implements MeituanRequest<GeneralreserveReserveMerchantcancelResponse> {
    /**
    * <p data-diff-id="ct-diff-id-20611c5c-ce08-42e7-8340-d41be1861ec9"><span style="color: rgb(31, 45, 61)">预约单ID</span></p>
    */
    @NotNull(message = "leadsId不能为空")
    @SerializedName("leadsId")
    private Long leadsId;
    /**
    * <p data-diff-id="ct-diff-id-310dc93a-25cf-4ba1-b231-b62149e97f04"><span style="color: rgb(31, 45, 61)">门店ID。</span><span style="color: rgba(0, 0, 0, 0.87)">该字段是混淆字段，实际值类型为混淆后的字符串类型。</span></p>
    */
    @NotBlank(message = "opPoiId不能为空")
    @SerializedName("opPoiId")
    private String opPoiId;
    /**
    * <p data-diff-id="ct-diff-id-4eee7bbf-7f28-48b9-aada-594cc82bca85"><span style="color: rgb(31, 45, 61)">取消原因</span></p>
    */
    @NotBlank(message = "cancelReason不能为空")
    @SerializedName("cancelReason")
    private String cancelReason;
    /**
    * <p data-diff-id="ct-diff-id-f9bc1334-10f4-4bcd-b1b3-701573e5257d"><span style="color: rgb(31, 45, 61)">附加属性 注：类型为对象类型</span></p>
    */
    @SerializedName("extraMap")
    private String extraMap;

    public Long getLeadsId() {
        return leadsId;
    }
    public void setLeadsId(Long leadsId) {
        this.leadsId = leadsId;
    }
    public String getOpPoiId() {
        return opPoiId;
    }
    public void setOpPoiId(String opPoiId) {
        this.opPoiId = opPoiId;
    }
    public String getCancelReason() {
        return cancelReason;
    }
    public void setCancelReason(String cancelReason) {
        this.cancelReason = cancelReason;
    }
    public String getExtraMap() {
        return extraMap;
    }
    public void setExtraMap(String extraMap) {
        this.extraMap = extraMap;
    }


    @Override
    public MeituanResponse<GeneralreserveReserveMerchantcancelResponse> deserializeResponse(String response) {
        Type type = new TypeToken<MeituanResponse<GeneralreserveReserveMerchantcancelResponse>>(){}.getType();
        return JsonUtil.fromJson(response, type);
    }
    @Override
    public String serializeToJson() {
        return JsonUtil.toJson(this);
    }


    @Override
    public String toString() {
        return "GeneralreserveReserveMerchantcancelRequest{" + "leadsId=" + leadsId + "," + "opPoiId=" + opPoiId + "," + "cancelReason=" + cancelReason + "," + "extraMap=" + extraMap + "}";
    }
}
